package com.boge.springframework.beans.factory.config;

import com.boge.springframework.beans.factory.HierarchicalBeanFactory;

/**
 * 该接口主要是为了在 BeanDefinition全部加载之后，将 BeanPostProcessor 注册起来，为了后续SingletonBean的扩展做准备
 */
public interface ConfigurableBeanFactory extends HierarchicalBeanFactory, SingletonBeanRegistry {

    String SCOPE_SINGLETON = "singleton";

    String SCOPE_PROTOTYPE = "prototype";

    /***
     * 注册实现了 BeanPostProcessor的实现类
     * @param beanPostProcessor
     */
    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);

    /***
     * 销毁单例
     */
    void destroySingletons();
}
